//package cn.stylefeng.guns.sys.modular.system.controller;
//import ccb.pay.api.util.CCBPayUtil;
//import cn.stylefeng.guns.sys.core.util.DateUtil;
//import cn.stylefeng.guns.sys.modular.system.ApiEntity.JhParam;
//import cn.stylefeng.guns.sys.modular.system.entity.BtyMddy;
//import cn.stylefeng.guns.sys.modular.system.service.BtyMddyService;
//import cn.stylefeng.roses.core.reqres.response.ResponseData;
//import cn.stylefeng.roses.core.util.ToolUtil;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.google.gson.JsonObject;
//import com.google.gson.JsonParser;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.client.RestTemplate;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import java.math.BigDecimal;
///**
// * 建行接口
// */
//@CrossOrigin
//@Controller
//@RequestMapping("/jh")
//public class JhController {
//    @Resource
//    private BtyMddyService mddyService;
//
//    private static Logger logger = LoggerFactory.getLogger(JhController.class);
//    private int qryTime=0;
//    //银行接口url
//    private static final  String host = "https://ibsbjstar.ccb.com.cn/CCBIS/B2CMainPlat_00_BEPAY?";
//    //商户信息
//    private static String merInfo = "MERCHANTID=105003958128832&POSID=054211205&BRANCHID=370000000";
//    //获取柜台完整公钥
//    private static String pubKey = "30819c300d06092a864886f70d010101050003818a0030818602818077423c1576606c4ee696d28b796ba7555b2ff26eca7ed729bc85df2b121b02e31c16726880308b1772ed31005b337946e051a60d3d684041335171d91da5a0fccf22e613b71d0b2b0f11d1ea8436ed78fd00564946df8ea0b1e12a75c67e1ba08cca6aa8c2e0b5369dee6a8b98054d8231d87818a52d3fc669f5b2c0bf74d957020111";
//
//
//    /**
//     * @param jh
//     * @return
//     * @throws Exception
//     * 客户被扫支付接口
//     */
//    @PostMapping("/pay100")
//    @ResponseBody
//    public ResponseData pay100(@RequestBody JhParam jh) throws Exception {
//        String qrCode=jh.getQrCode();
//        String orderId=DateUtil.getStampNow();
//        String yaoma=jh.getYaoma();
//        String jhMerchantId="";
//        //通过妖码获取建行商户号
//        BtyMddy mddy=mddyService.getOne(new QueryWrapper<BtyMddy>().eq("yaoma",yaoma));
//        if(ToolUtil.isNotEmpty(mddy)){
//            jhMerchantId=mddy.getJhMerchantId();
//        }
//
//        BigDecimal amount=jh.getAmount();
//        int flag=amount.compareTo(BigDecimal.ZERO);
//        if(flag==1){
//            amount=amount.setScale(2,BigDecimal.ROUND_HALF_UP);
//        }
//        System.out.println("orderId:"+orderId);
//        //加密原串【PAY100接口定义的请求参数】
//        String param = merInfo + "&MERFLAG=1&TERMNO1=&TERMNO2=&ORDERID="+orderId+
//                "&QRCODE="+qrCode+"&AMOUNT=0.01&TXCODE=PAY100&PROINFO=&REMARK1=&REMARK2=&SMERID=&SMERNAME=&SMERTYPEID=" +
//                "&SMERTYPE=&TRADECODE=&TRADENAME=&SMEPROTYPE=&PRONAME=";
//        //执行加密操作
//        CCBPayUtil ccbPayUtil = new CCBPayUtil();
//        String url = ccbPayUtil.makeCCBParam(param, pubKey);
//        //拼接请求串
//        url = host + merInfo + "&ccbParam=" + url;
//        RestTemplate restTemplate=new RestTemplate();
//        HttpHeaders headers = new HttpHeaders();
//        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//        headers.setContentType(type);
//        JSONObject json = new JSONObject();
//        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//        HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);
//        String result = restTemplate.postForEntity(url, formEntity, String.class).getBody();
//        System.out.println("result:"+result);
//        JsonParser jp = new JsonParser();
//        //将json字符串转化成json对象
//        JsonObject jo = jp.parse(result).getAsJsonObject();
//        String code = jo.get("RESULT").getAsString();
//        if(code.equals("N")){
//          return  ResponseData.error(501,jo.get("ERRMSG").getAsString());
//        }else {
//            return ResponseData.success(result);
//        }
//    }
//    /**
//     * 支付宝/微信订单查询接口
//     */
//    @PostMapping("/pay102")
//    @ResponseBody
//    public ResponseData pay102(@RequestBody JhParam jh) throws Exception {
//        String qrCodeType=jh.getQrCodeType();
//        String orderId=jh.getOrderId();
//        System.out.println("orderId:"+orderId);
//        //加密原串【PAY102接口定义的请求参数】
//        String param = merInfo + "&MERFLAG=1&ORDERID="+orderId+
//                "&QRCODETYPE="+qrCodeType+"&TXCODE=PAY102";
//        //执行加密操作
//        CCBPayUtil ccbPayUtil = new CCBPayUtil();
//        String url = ccbPayUtil.makeCCBParam(param, pubKey);
//        //拼接请求串
//        url = host + merInfo + "&ccbParam=" + url;
//        RestTemplate restTemplate=new RestTemplate();
//        HttpHeaders headers = new HttpHeaders();
//        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//        headers.setContentType(type);
//        JSONObject json = new JSONObject();
//        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//        HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);
//        String result = restTemplate.postForEntity(url, formEntity, String.class).getBody();
//        System.out.println("result:"+result);
//        JsonParser jp = new JsonParser();
//        //将json字符串转化成json对象
//        JsonObject jo = jp.parse(result).getAsJsonObject();
//        String code = jo.get("RESULT").getAsString();
//        if(code.equals("N")){
//            if(qrCodeType.equals("3")){
//                /**ZFB_STATE
//                 * 交易状态：
//                 * WAIT_BUYER_PAY（交易创建，等待买家付款）
//                 * TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）
//                 * TRADE_SUCCESS（交易支付成功）
//                 * TRADE_FINISHED（交易结束，不可退款）
//                 */
//                return  ResponseData.error(502,jo.get("ZFB_STATE").getAsString());
//            }else if(qrCodeType.equals("2")){
//                /**WECHAT_STATE
//                 * SUCCESS—支付成功
//                 * REFUND—转入退款
//                 * NOTPAY—未支付
//                 * CLOSED—已关闭
//                 * REVOKED—已撤销（刷卡支付）
//                 * USERPAYING--用户支付中
//                 * PAYERROR--支付失败（其他原因，如银行返回失败）
//                 */
//                return  ResponseData.error(502,jo.get("WECHAT_STATE").getAsString());
//            }
//            else {
//                return ResponseData.error(502, jo.get("ERRMSG").getAsString());
//            }
//        }else {
//            return ResponseData.success(result);
//        }
//    }
//
//    /**
//     * 轮询订单查询接口
//     */
//    @PostMapping("/pay101")
//    @ResponseBody
//    public ResponseData pay101(@RequestBody JhParam jh) throws Exception {
//        String qrCodeType=jh.getQrCodeType();
//        String orderId=jh.getOrderId();
//        System.out.println("orderId:"+orderId);
//        //int qryTime=jh.getQryTime();
//
//        qryTime++;
//
//        System.out.println("qryTime:"+qryTime);
//        //加密原串【PAY101接口定义的请求参数】
//        String param = merInfo + "&MERFLAG=1&ORDERID="+orderId+
//                "&QRCODETYPE="+qrCodeType+"&TXCODE=PAY101&QRYTIME="+qryTime;
//        //执行加密操作
//        CCBPayUtil ccbPayUtil = new CCBPayUtil();
//        String url = ccbPayUtil.makeCCBParam(param, pubKey);
//        //拼接请求串
//        url = host + merInfo + "&ccbParam=" + url;
//        RestTemplate restTemplate=new RestTemplate();
//        HttpHeaders headers = new HttpHeaders();
//        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
//        headers.setContentType(type);
//        JSONObject json = new JSONObject();
//        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//        HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);
//        String result = restTemplate.postForEntity(url, formEntity, String.class).getBody();
//        System.out.println("result:"+result);
//        JsonParser jp = new JsonParser();
//        //将json字符串转化成json对象
//        JsonObject jo = jp.parse(result).getAsJsonObject();
//        String code = jo.get("RESULT").getAsString();
//        if(code.equals("N")){
//            return  ResponseData.error(501,jo.get("ERRMSG").getAsString());
//        }else {
//            return ResponseData.success(result);
//        }
//    }
//    @RequestMapping("/confirm")
//    @ResponseBody
//    public void confirm(HttpServletRequest request)  {
//        String result=request.getParameter("RESULT");
//        String orderId=request.getParameter("ORDERID");
//        System.out.println("conconfirm："+111);
//        System.out.println("result："+result);
//        System.out.println("orderId："+orderId);
//    }
//
//}
